package thinkingInJava.TInterface;

interface Instrument {
	  // Compile-time constant:
	  int VALUE = 5; // static & final
	  // Cannot have method definitions:
	  void play(Note n); // Automatically public
	  void adjust();
	}

class Wind implements Instrument {
	  public void play(Note n) {
	    System.out.print(this + ".play() " + n);
	  }
	  public String toString() { return "Wind"; }
	  public void adjust() { System.out.print(this + ".adjust()"); }
	  public void fun(){
	  }
	}

	class Percussion implements Instrument {
	  public void play(Note n) {
	    System.out.print(this + ".play() " + n);
	  }
	  public String toString() { return "Percussion"; }
	  public void adjust() { System.out.print(this + ".adjust()"); }
	}

	class Stringed implements Instrument {
	  public void play(Note n) {
	    System.out.print(this + ".play() " + n);
	  }
	  public String toString() { return "Stringed"; }
	  public void adjust() { System.out.print(this + ".adjust()"); }
	}

	class Brass extends Wind {
	  public String toString() { return "Brass"; }
	}	

	class Woodwind extends Wind {
	  public String toString() { return "Woodwind"; }
	}

public class TIntercace {

}
